// This class provides the implementation of a GuiInterface object,
// used to interface between the GUI and the backend code
//
// Created by River on 11/4
// Edited by Christopher Bowlsby
// Last updated on 11/23

#ifndef GUIINTERFACE_H
#define GUIINTERFACE_H

#include "Interface.h"
#include <QtGui/QApplication>
#include <QtGui/QFont>
#include <QtGui/QPushButton>
#include <QtGui/QMessageBox>
#include <QtGui/QDialog>
#include <QtGui/QFrame>
#include "Dungeons_and_Princesses_gui.h"

class Dungeons_and_Princesses_gui;

class GuiInterface : public Interface
{
private:
    int argc;
    char ** argv;
public:
    GuiInterface(Game * ptrToCurrentGame,int argc, char* argv[]);
    Dungeons_and_Princesses_gui *w;

    void loadInterface();
    //void update(string errorMSG = "");
    void setupPlayer();
    void showRoomInventory();
    //QString showDescription_gui();
    void showDescription();
    void showPrompt();
    void showDirections();
    //QString showDirections();
    void getResponse(std::string prompt, std::string &response);
    void showPlayerInventory();
    void showHelp(vector<std::string> *helpFile);
    void somethingHappened(std::string);
    void enterBattle();
    void showRoomInventory(const std::vector<Listing> *);
    void showPlayerInventory(const std::vector<Listing> *);
    bool saveGame();
    int loadGame();
    void printErrorMsg(string);

    int indexOfClass;
};

#endif // GUIINTERFACE_H
